import request from '@/utils/request'
import type { LoginRequest, UserInfo } from '@/types/api/auth'
import type { API } from '@/types/api/response'

/**
 * 登录接口返回数据
 */
export interface LoginResponse {
  token: string
}

/**
 * 用户登录
 * @param data 登录参数
 */
export const loginApi = (data: LoginRequest) => 
  request.post<API.Response<LoginResponse>>('/api/auth/login', data)

/**
 * 获取当前用户信息
 */
export const getUserInfoApi = () => 
  request.get<API.Response<UserInfo>>('/api/user/info')

/**
 * 退出登录
 */
export const logoutApi = () => 
  request.post<API.Response<null>>('/api/auth/logout')

/**
 * 修改用户密码
 */
export const changePassword = (data: { oldPassword: string; newPassword: string }) =>
  request.put<API.Response<null>>('/api/user/password', data)

/**
 * 修改用户个人信息
 * @param data 要更新的用户信息
 */
export const updateUserProfile = (data: Partial<UserInfo>) =>
  request.put<API.Response<null>>('/api/user/profile', data)

/**
 * 上传用户头像
 * @param file 图片文件
 */
export const uploadAvatar = (file: File) =>
  request.upload<API.Response<{ avatar: string }>>('/api/user/avatar', file) 